package com.financing.wap.service;

import java.sql.SQLException;
import java.util.List;
import java.util.Map;

import com.financing.wap.dto.BankCardDTO;
import com.financing.wap.vo.BingdingCardVO;

public interface IBankCardService {
	/**
	 * 
	 * @Title: queryBankCardList
	 * @Description: 查询银行卡列表 
	 * @param bankCardDTO
	 * @return List<BankCardDTO>   
	 * @throws
	 */
	public List<BankCardDTO> queryBankCardList(BankCardDTO bankCardDTO)throws SQLException;
	
	/**
	 * 
	 * @Title: queryBankCard
	 * @Description: 查询银行卡
	 * @param bankCardDTO
	 * @return List<BankCardDTO>   
	 * @throws
	 */
	public BankCardDTO queryBankCard(BankCardDTO bankCardDTO)throws SQLException;
	
	/**
	 * 
	 * @Title: updateBankCard
	 * @Description: 更新银行卡
	 * @param bankCardDTO
	 * @throws SQLException   
	 * @return int   
	 */
	public int updateBankCard(BankCardDTO bankCardDTO) throws SQLException;
	
	/**
	 * 
	 * @Title: insertBankCard
	 * @Description: 添加银行卡 
	 * @param BankCardDTO
	 * @throws SQLException   
	 * @return int   
	 * @throws
	 */
	public int insertBankCard(BankCardDTO bankCardDTO) throws SQLException;

	/**
	 * @Title: deleteBankCard
	 * @Description: 删除银行卡 
	 * @param BankCardDTO
	 * @throws SQLException   
	 * @return int   
	 * @throws
	 */
	public int deleteBankCard(BankCardDTO bankCardDTO)throws SQLException;

	/**
	 * @Title: checkBankType
	 * @Description: 判断银行卡类型是否已经添加过
	 * @param bankType
	 * @return
	 */
	public boolean checkBankType(BankCardDTO bankCardDTO) throws SQLException;
	
	/**
	 * @Title: checkBankType
	 * @Description: 判断卡号是否存在
	 * @param bankType
	 * @return
	 */
	public boolean checkBankName(BankCardDTO bankCardDTO) throws SQLException;

	
	/**
	 * 支付-检查银行卡是否已经被其他用户绑定过
	 * @param map
	 * @return
	 * @throws SQLException
	 */
	public int countOtherUserBindBankCard(Map<String, Object> map) throws SQLException;

	/**
	 * 支付-检查是否已经在该支付渠道绑定过该银行卡
	 * @param cardno
	 * @param payPlat
	 * @return
	 * @throws SQLException
	 */
	public boolean checkBankcardAndPayplatIsBinded(String cardno, String payPlat,String userId)throws SQLException;

	/**
	 * 支付-根据用户编码获取用户对应的银行卡列表
	 * @param map
	 * @return
	 * @throws SQLException
	 */
	public List<BingdingCardVO> queryUserBindedcardList(Map<String, Object> map)throws SQLException;
}
